package top.jacktgq.closure

/**
 @Author CandyWall
 @Date 2021/4/27--13:18
 @Description 闭包和基本类型变量的结合使用
 */
// 求指定number的阶乘
int fab1(int number) {
    int result = 1
    1.upto(number,num -> result *= num)

    return result
}

println fab1(5)

int fab2(int number) {
    int result = 1
    // 闭包作为参数可以放在圆括号内，也可以放在圆括号外
    number.downto(1) {
        num -> result *= num
    }

    return result
}
println fab2(5)

int sum(int number) {
    int result = 0
    number.times {
        num -> result += num
    }

    return result
}
println sum(5)